public class CanJump {
    public static boolean canJump(int[] nums) {
        int length=nums.length;
        int next=0;//跳板
        for (int i = next; i < nums.length; ) {
            //每次选择当天能够调的最远的板子
            //注意只是在找下一块最长的板子next,在for循环过程中，初始和终止条件不能改变！！不应该把板子换掉！
            for (int j = i; j <= i+nums[i]; j++) {
                next=Math.max(next,j+nums[j]);
                if(next>=length-1)
                    return true;
            }
        }
        return false;
    }
    public static void main(String[] args) {
        int [] nums={3,2,1,0,4};
        System.out.println(canJump(nums));
    }
}
